package com.yociyy.admin.mapper;

import com.yociyy.admin.model.entity.BaseUser;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;
import java.util.Map;

/**
 * 用户信息 mapper
 *
 * @author Y.yang
 * @date 2019/12/13
 */
public interface BaseUserMapper extends Mapper<BaseUser> {

	/**
	 * 查询用户信息列表
	 *
	 * @param params 条件查询
	 * @return 用户信息列表
	 */
	List<BaseUser> selectUserList(Map<String, Object> params);

	/**
	 * 检查用户名唯一性
	 *
	 * @param loginName 用户名
	 * @return 结果
	 */
	int checkUsernameUnique(String loginName);

	/**
	 * 通过用户ID查询用户
	 *
	 * @param userId 用户ID
	 * @return 用户对象信息
	 */
	BaseUser selectUserById(Long userId);

	/**
	 * 根据电话或者昵称搜索用户
	 *
	 * @param phone 电话号码
	 * @return 用户信息列表
	 */
	List<BaseUser> selectByUserList(@Param("phone") String phone);

	/**
	 * 批量删除用户信息
	 *
	 * @param ids 用户id数组
	 * @return 结果
	 */
	int batchDeleteUserByIds(long[] ids);

	/**
	 * 用户重置密码
	 * 
	 * @param user 用户信息
	 * @return 结果
	 */
	int resetUserPwd(BaseUser user);

	/**
	 * 通过用户账号查询用户信息
	 *
	 * @param account 用户账号
	 * @return 用户信息
	 */
	BaseUser selectUserByAccount(String account);

	/**
	 * 通过部门id查询用户列表信息
	 * 
	 * @param ids 部门id
	 * @return 用户列表
	 */
	// List<UserVo> selectByDeptIds(Integer[] ids);
}